1. Technical Field
The present invention relates in general to a system and method for monitoring computer system initialization. More particularly, the present invention relates to a system and method for monitoring system initialization using a service processor that monitors initialization progress codes.
2. Description of the Related Art
Computer systems perform a variety of functions during initialization. Computer systems vary greatly in terms of initialization needs. One system may have a variety of peripheral devices that need to be initialized, while another system has fewer devices. Some computer systems include a service processor for performing and monitoring system initialization. For example, the IBM Model 6M1 has an integrated enhanced service processor, located in the primary I/O drawer. When the system is powered down, but still plugged into an active power source, the service processor functions are still active under standby power. This function provides enhanced Reliability, Availability, and Serviceablity (RAS) by not requiring an operating system (e.g., IBM's AIX™ operating system) to be operational for interfacing with a system administrator or service director for the computer system, such as the IBM RS/6000™. Service processor menu functions (using the local, remote, or terminal concentrator console), as well as dial out capability, are available even if the system is powered down or unable to power up.
The service processor can provide for a computer system to automatically reboot (if the appropriate policy flags are set) in certain conditions. These conditions include when power is restored after a power loss during normal system operation, when hardware checkstop failures occur, when machine check interrupt conditions occur, and when the operating system hangs (Surveillance Failure) or fails.
In the prior art, the service processor performs surveillance of system initialization through a heartbeat mechanism that sends mailbox commands periodically to the service processor. If there is no interrupt driven heartbeat (e.g., using a mailbox command) received within the time-out period, the service processor takes appropriate action. Actions that the service processor may take include creating a system reset to allow a system dump to occur, capturing scan debug data for the system, and rebooting the system.
One challenge facing traditional service processor periodic heartbeat mechanisms is that some system initialization steps, such as I/O initialization, take longer to perform. This may cause the interrupt driven heartbeats to be delayed causing the service processor to erroneously determine that an initialization error occurred. A challenge facing traditional interrupt driven heartbeat mechanisms is that error conditions wherein an endless loop occurs during initialization may not be detected as an error by the service processor. This condition occurs when interrupt driven heartbeats continue to be generated during the loop, indicating to the service processor that initialization is still taking place.
What is needed, therefore, is a system and method in which the progress of the system initialization is communicated to the service processor without relying upon interrupt driven heartbeats.